home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / DMultiStringLocator / source / PPShell.cp < prev    next >
Text File  |  1996-07-02  |  4KB  |  160 lines

  1. // ===========================================================================
  2. //    PPShell.cp
  3. //   ---------------------
  4. //   ©1996 Eric Gundrum, All rights reserved.
  5. //   The contents of this file may be freely altered and freely distributed
  6. //   in any form, provided this copyright statement is retained unaltered.
  7. //   Add your own changes below.
  8. //   ---------------------
  9. //    
  10. //    This file contains the starter code for a PowerPlant application
  11.  
  12. #include "PPShell.h"
  13. #include "CSearchWindow.h"
  14.  
  15. #include <LGroupBox.h>
  16. #include <LGrowZone.h>
  17. #include <LWindow.h>
  18. #include <PP_Messages.h>
  19. #include <PP_Resources.h>
  20. #include <PPobClasses.h>
  21. #include <UDrawingState.h>
  22. #include <UMemoryMgr.h>
  23. #include <URegistrar.h>
  24. #include <LEditField.h>
  25. #include <UDebugging.h>
  26.  
  27. #define RegisterPPob( className, funcName )            \
  28.     URegistrar::RegisterClass(    className::class_ID , (ClassCreatorFunc) ( className::funcName ) );
  29.  
  30. // ===========================================================================
  31. //        • Main Program
  32. // ===========================================================================
  33.  
  34. void main(void)
  35. {
  36.     #define debugAction        SourceDebugger            // Set Debugging options
  37.     #if debugAction == Alert
  38.         SetDebugThrow_(debugAction_Alert);
  39.         SetDebugSignal_(debugAction_Alert);
  40.     #elif debugAction == SourceDebugger
  41.         SetDebugThrow_(debugAction_SourceDebugger);
  42.         SetDebugSignal_(debugAction_SourceDebugger);
  43.     #elif debugAction == Nothing
  44.         SetDebugThrow_(debugAction_Alert);
  45.         SetDebugSignal_(debugAction_Nothing);        // turn off Assert_()
  46.     #endif    // debugAction
  47.  
  48.     InitializeHeap(3);                // Initialize Memory Manager
  49.                                     // Parameter is number of Master Pointer
  50.                                     //   blocks to allocate
  51.     
  52.                                     // Initialize standard Toolbox managers
  53.     UQDGlobals::InitializeToolbox(&qd);
  54.     
  55.     new LGrowZone(20000);            // Install a GrowZone function to catch
  56.                                     //    low memory situations.
  57.  
  58.     PPShell    theApp;            // replace this with your App type
  59.     theApp.Run();
  60. }
  61.  
  62.  
  63. // ---------------------------------------------------------------------------
  64. //        • PPShell             // replace this with your App type
  65. // ---------------------------------------------------------------------------
  66. //    Constructor
  67.  
  68. PPShell::PPShell()
  69. {
  70.     // Register functions to create core PowerPlant classes
  71.     
  72.     RegisterAllPPClasses();
  73.  
  74.     RegisterPPob( LGroupBox,        CreateGroupBoxStream        );
  75. }
  76.  
  77.  
  78. // ---------------------------------------------------------------------------
  79. //        • ~PPShell            // replace this with your App type
  80. // ---------------------------------------------------------------------------
  81. //    Destructor
  82. //
  83.  
  84. PPShell::~PPShell()
  85. {
  86. }
  87.  
  88. // ---------------------------------------------------------------------------
  89. //        • StartUp
  90. // ---------------------------------------------------------------------------
  91. //    This function lets you do something when the application starts up. 
  92. //    For example, you could issue your own new command, or respond to a system
  93. //  oDoc (open document) event.
  94.  
  95. void
  96. PPShell::StartUp()
  97. {
  98.     ObeyCommand(cmd_New, nil);        // EXAMPLE, create a new window
  99. }
  100.  
  101. // ---------------------------------------------------------------------------
  102. //        • ObeyCommand
  103. // ---------------------------------------------------------------------------
  104. //    Respond to commands
  105.  
  106. Boolean
  107. PPShell::ObeyCommand(
  108.     CommandT    inCommand,
  109.     void        *ioParam)
  110. {
  111.     Boolean        cmdHandled = true;
  112.  
  113.     switch (inCommand) {
  114.     
  115.         // Deal with command messages (defined in PP_Messages.h).
  116.         // Any that you don't handle will be passed to LApplication
  117.              
  118.         case cmd_New:
  119.             new CSearchWindow();
  120.             break;
  121.  
  122.         default:
  123.             cmdHandled = LApplication::ObeyCommand(inCommand, ioParam);
  124.             break;
  125.     }
  126.     
  127.     return cmdHandled;
  128. }
  129.  
  130. // ---------------------------------------------------------------------------
  131. //        • FindCommandStatus
  132. // ---------------------------------------------------------------------------
  133. //    This function enables menu commands.
  134. //
  135.  
  136. void
  137. PPShell::FindCommandStatus(
  138.     CommandT    inCommand,
  139.     Boolean        &outEnabled,
  140.     Boolean        &outUsesMark,
  141.     Char16        &outMark,
  142.     Str255        outName)
  143. {
  144.  
  145.     switch (inCommand) {
  146.     
  147.         // Return menu item status according to command messages.
  148.         // Any that you don't handle will be passed to LApplication
  149.  
  150.         case cmd_New:                    // EXAMPLE
  151.             outEnabled = true;            // enable the New command
  152.             break;
  153.  
  154.         default:
  155.             LApplication::FindCommandStatus(inCommand, outEnabled,
  156.                                                 outUsesMark, outMark, outName);
  157.             break;
  158.     }
  159. }
  160.